[Home] Python으로 돌아가기
객체와 인스턴스 비교
📖 목차
1. 개념 정의
- 객체(object)는 데이터와 그 데이터를 처리하는 기능을 함께 지닌 독립된 실체이다. 파이썬에서는 정수, 문자열, 리스트, 함수, 클래스 등 모든 것이 객체이다.
- 인스턴스(instance)는 특정 클래스에서 생성된 객체를 지칭하는 용어이다. 클래스가 설계도라면 인스턴스는 그에 따라 만들어진 구체적 결과물이라 할 수 있다.
2. 용어 관계
- 객체는 넓은 개념으로, 파이썬의 모든 데이터 단위가 객체에 해당한다.
- 인스턴스는 특정 클래스의 구조를 따라 생성된 객체에 한정된다.
- 결론적으로, 모든 인스턴스는 객체이지만, 모든 객체가 인스턴스는 아니다.
3. 예제 코드
class Dog:
def __init__(self, name):
self.name = name
dog1 = Dog("Buddy")
- 위 코드에서
Dog
는 클래스이고, dog1
은 해당 클래스에서 생성된 인스턴스이다.
dog1
은 동시에 파이썬의 객체이기도 하다.
4. 비교표
구분 |
객체 (Object) |
인스턴스 (Instance) |
정의 |
데이터와 기능을 포함한 모든 실체 |
클래스로부터 생성된 객체 |
범위 |
더 넓은 개념 |
객체의 부분집합 |
사용 맥락 |
프로그래밍 전반 |
객체지향 프로그래밍에서 사용 |
예시 |
3 , "hello" , [1,2,3] |
dog = Dog("Buddy") 의 dog |
관계 |
모든 인스턴스를 포함 |
객체 중 클래스에서 생성된 것 |